package it.scambiocorse.model;

import it.scambiocorse.utils.Costanti;
import it.scambiocorse.utils.Utils;

import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;

public class ServizioType {
	
	private int idServ;
	private int idServUser;
	
	private int idUserInse;

	private ClienteType cliente;
	
	private AutistaType autista;
	private String autistaJson;
	private String idAutistaJson;
	private SorgenteType sorgente;
	private String sorgenteJson;
	private AreaType area;
	private UtenteType userInse;

	private String userNameInse;
	private int tipoServizio;
	private String descTipoServizio;
	private String citta;
	private String pickUp;
	private String dropOff;
	private String pickUpToken;
	private String dropOffToken;
	private String data;		// DATA IN STRINGA SOLO PER IL BEAN
	private Timestamp dataora; // DATA SUL DB 

	private String ore;
	private String minuti;
	private int pax;
	private double prezzo;
	private String veicolo;
	private Timestamp dataInse;	
	private Timestamp dataFine;

	private CodaType coda;
	private boolean isOk;
	private String note;
	private double dare;
	private double avere;
	private int idUserExec;
	private double commissione;
	private Timestamp oraFine;

	private String oreFine;
	private String minutiFine;
	private String volo;
	
	
	public ServizioType() {
		this.cliente = new ClienteType();
		this.autista = new AutistaType();
		this.sorgente = new SorgenteType();
		this.area = new AreaType();
		this.userInse = new UtenteType();
	}
	


	
	public String getIdAutistaJson() {
		return idAutistaJson;
	}
	public void setIdAutistaJson(String idAutistaJson) {
		this.idAutistaJson = idAutistaJson;
	}
	public String getAutistaJson() {
		return autistaJson;
	}
	public void setAutistaJson(String autistaJson) {
		this.autistaJson = autistaJson;
	}
	public String getSorgenteJson() {
		return sorgenteJson;
	}
	public void setSorgenteJson(String sorgenteJson) {
		this.sorgenteJson = sorgenteJson;
	}
	public int getIdServUser() {
		return idServUser;
	}

	public void setIdServUser(int idServUser) {
		this.idServUser = idServUser;
	}

	public String getVolo() {
		return volo;
	}

	public void setVolo(String volo) {
		this.volo = volo;
	}

	public String getOreFine() {
		return oreFine;
	}

	public void setOreFine(String oreFine) {
		this.oreFine = oreFine;
	}

	public String getMinutiFine() {
		return minutiFine;
	}

	public void setMinutiFine(String minutiFine) {
		this.minutiFine = minutiFine;
	}

	public Timestamp getOraFine() {
		return oraFine;
	}

	public void setOraFine(Timestamp oraFine) {
		this.oraFine = oraFine;
		
		try {
			if (oraFine != null) {
				SimpleDateFormat sdf =  new SimpleDateFormat("hh");
					this.oreFine = sdf.format(oraFine);
					
					sdf = new SimpleDateFormat("mm");
					this.minutiFine = sdf.format(oraFine);
			}
		}catch (Exception e) {}
		
	}

	public double getCommissione() {
		return commissione;
	}

	public void setCommissione(double commissione) {
		this.commissione = commissione;
	}

	public UtenteType getUserInse() {
		return userInse;
	}

	public void setUserInse(UtenteType userInse) {
		this.userInse = userInse;
	}	
	public Timestamp getDataFine() {
		return dataFine;
	}

	public void setDataFine(Timestamp dataFine) {
		
		this.dataFine = dataFine;
	}

	public int getIdUserExec() {
		return idUserExec;
	}
	public void setIdUserExec(int idUserExec) {
		this.idUserExec = idUserExec;
	}

	public AutistaType getAutista() {
		return autista;
	}



	public void setAutista(AutistaType autista) {
		this.autista = autista;
		if (autista != null)
			this.autistaJson = autista.getNome();	
	}



	public SorgenteType getSorgente() {
		return sorgente;
	}



	public void setSorgente(SorgenteType sorgente) {
		this.sorgente = sorgente;
		if (sorgente != null)
			this.sorgenteJson = sorgente.getNome();
	}



	public AreaType getArea() {
		return area;
	}



	public void setArea(AreaType area) {
		this.area = area;
	}



	public double getDare() {
		return dare;
	}



	public void setDare(double dare) {
		this.dare = dare;
	}



	public double getAvere() {
		return avere;
	}



	public void setAvere(double avere) {
		this.avere = avere;
	}



//	public boolean isAcquisibile() {
//		if (this.area.getidArea == 1) 
//			return ((this.dataora.getTime() - Utils.getSysDate().getTime() >= Costanti.OTTO_ORE_MS+Costanti.CINQUE_MINUTI_MS));
//		else 
//			return ((this.dataora.getTime() - Utils.getSysDate().getTime() >= Costanti.DUE_ORE_MS+Costanti.CINQUE_MINUTI_MS));
//	}
//	
	

	public Timestamp getDataora() {
		return dataora;
	}

	public void setDataora(Timestamp dataora) {
		this.dataora = dataora;
		
		try {
			if (dataora != null) {
				SimpleDateFormat sdf = new SimpleDateFormat(Costanti.DATA_PATTERN);
				if (!sdf.format(dataora).equals("01/01/1900")) {
					this.data = sdf.format(dataora);
					
					sdf = new SimpleDateFormat("hh");
					this.ore = sdf.format(dataora);
					
					sdf = new SimpleDateFormat("mm");
					this.minuti = sdf.format(dataora);
				}
				
			}
		}catch (Exception e) {
			
		}
	}


	
	public String  getMinuti() {
		return minuti;
	}
	public void setMinuti(String minuti) {
		this.minuti = minuti;
	}

	public void setDescTipoServizio(String descTipoServizio) {
		this.descTipoServizio = descTipoServizio;
	}
	
	public int getTipoServizio() {
		return tipoServizio;
	}

	public void setTipoServizio(int tipoServizio) {
		this.tipoServizio = tipoServizio;
		setTipoServizioDesc(tipoServizio);
	}
	
	

	private void setTipoServizioDesc(int tipoServizio) {
		String descServizio = "";
		switch (tipoServizio) {
			case 1: descServizio = "Transfer Privato"; break;
			case 2: descServizio = "Transfer Shuttle"; break;
			case 3: descServizio = "Disposizione"; break;
		}
		this.descTipoServizio = descServizio;
	}

	public String getDescTipoServizio() {
		return descTipoServizio;
	}

	public String getCitta() {
		return citta;
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}


	public ClienteType getCliente() {
		return cliente;
	}
	public void setCliente(ClienteType cliente) {
		this.cliente = cliente;
	}
	public int getIdServ() {
		return idServ;
	}
	public void setIdServ(int idServ) {
		this.idServ = idServ;
	}
	public String getPickUpToken() {
		return pickUpToken;
	}
	public void setPickUpToken(String pickUpToken) {
		this.pickUpToken = pickUpToken;
	}
	public String getDropOffToken() {
		return dropOffToken;
	}
	public void setDropOffToken(String dropOffToken) {
		this.dropOffToken = dropOffToken;
	}

	public String getUserNameInse() {
		return userNameInse;
	}
	public void setUserNameInse(String userNameInse) {
		this.userNameInse = userNameInse;
	}
	public String getNote() {
		return note;
	}
	public void setNote(String note) {
		this.note = note;
	}
	public int getPax() {
		return pax;
	}
	public void setPax(int pax) {
		this.pax = pax;
	}
	public int getIdUserInse() {
		return idUserInse;
	}
	public void setIdUserInse(int idUserInse) {
		this.idUserInse = idUserInse;
	}
	
	public Timestamp getDataInse() {
		return dataInse;
	}
	public void setDataInse(Timestamp data_inse) {
		this.dataInse = data_inse;
	}
	public CodaType getCoda() {
		return coda;
	}
	public void setCoda(CodaType coda) {
		this.coda = coda;
	}
	public boolean isOk() {
		return isOk;
	}
	public void setOk(boolean isOk) {
		this.isOk = isOk;
	}
	public String getPickUp() {
		return pickUp;
	}
	public void setPickUp(String pickUp) {
		this.pickUp = pickUp;
	}
	public String getDropOff() {
		return dropOff;
	}
	public void setDropOff(String dropOff) {
		this.dropOff = dropOff;
	}
	public String getData() {
		return data;
	}
	public void setData(String data) {
		this.data = data;
	}
	public String getOre() {
		return ore;
	}
	public void setOre(String ora) {
		this.ore = ora;
	}
	public double getPrezzo() {
		return prezzo;
	}
	public void setPrezzo(double prezzo) {
		this.prezzo = prezzo;
	}
	public String getVeicolo() {
		return veicolo;
	}
	public void setVeicolo(String veicolo) {
		this.veicolo = veicolo;
	}




	

}
